From 5b8bf04035986130e52c3d64afd8112d28e959bd Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 3 Apr 2021 23:01:13 -0400 Subject: [PATCH] texttag: Just use qsort No point in trying to optimize this. --- gtk/gtktexttag.c | 50 +++--------------------------------------------- 1 file changed, 3 insertions(+), 47 deletions(-) diff --git a/gtk/gtktexttag.c b/gtk/gtktexttag.c index f8db984825..0eec046a5d 100644 --- a/gtk/gtktexttag.c +++ b/gtk/gtktexttag.c @@ -2410,52 +2410,8 @@ tag_sort_func (gconstpointer first, gconstpointer second) } void -_gtk_text_tag_array_sort (GtkTextTag** tag_array_p, - guint len) +_gtk_text_tag_array_sort (GtkTextTag **tag_array_p, + guint len) { - int i, j, prio; - GtkTextTag **tag; - GtkTextTag **maxPtrPtr, *tmp; - - g_return_if_fail (tag_array_p != NULL); - g_return_if_fail (len > 0); - - if (len < 2) { - return; - } - if (len < 20) { - GtkTextTag **iter = tag_array_p; - - for (i = len-1; i > 0; i--, iter++) { - maxPtrPtr = tag = iter; - prio = tag[0]->priv->priority; - for (j = i, tag++; j > 0; j--, tag++) { - if (tag[0]->priv->priority < prio) { - prio = tag[0]->priv->priority; - maxPtrPtr = tag; - } - } - tmp = *maxPtrPtr; - *maxPtrPtr = *iter; - *iter = tmp; - } - } else { - qsort ((void *) tag_array_p, (unsigned) len, sizeof (GtkTextTag *), - tag_sort_func); - } - -#if 0 - { - printf ("Sorted tag array: \n"); - i = 0; - while (i < len) - { - GtkTextTag *t = tag_array_p[i]; - printf (" %s priority %d\n", t->name, t->priority); - - ++i; - } - } -#endif + qsort (tag_array_p, len, sizeof (GtkTextTag *), tag_sort_func); } - -- 2.30.2